import { parseHtml } from "./parseAST";
import { generate } from "./generate";

// el ==> <div id="app">hello</div>
export function compileToFunction(el) {
  // 将 html 转换为 ast 语法树
  let ast = parseHtml(el);
  // console.log("ast==>", ast);
  // 将 ast 语法树转换为 render 字符串
  let code = generate(ast);
  // console.log("code==>", code);
  // 将 render 字符串变成 render 函数
  let render = new Function(`with(this) {return ${code}}`);
  return render;
}

/* 
  let obj = {a: 1, b: 2};
  with(obj) {
    console.log(a);
    console.log(b);
  }
  // 在node环境下，就可以打印出1和2来
*/